#pragma once
#include "RenderTarget.h"
#include "VideoManager.h"
#include "GpuProgramManager.h"

namespace DreamEngine
{

class _EngineExport CRenderWindow : public CRenderTarget
{
public:
	CRenderWindow(const CString& name);
	virtual ~CRenderWindow(void);

	virtual Error			Initialize(int width, int height) = 0;
	virtual void			ShutDown(void) =0;
	virtual void			ShowWindow(void)=0;

	HWINDOW					GetWindowModule(void)const			{return m_hWnd;}
	CVideoManager*			GetVideoManager(void)const			{return m_pVideoManager;}
	CGpuProgramManager*		GetGpuProgramManager(void)const		{return m_pGpuProgramManager;}

protected:

	HWINDOW					m_hWnd;
	CVideoManager*			m_pVideoManager;
	CGpuProgramManager*		m_pGpuProgramManager;
};

}